-
Notifications
You must be signed in to change notification settings - Fork 112
Propose fix a typo #761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Propose fix a typo #761
Conversation
📝 WalkthroughWalkthroughSpelling and wording corrections were applied to comments and assertion/error message strings across multiple C++ source and header files; no changes to control flow, logic, or public API signatures. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (9)
✅ Files skipped from review due to trivial changes (2)
🚧 Files skipped from review as they are similar to previous changes (4)
🧰 Additional context used📓 Path-based instructions (4)**/*.{cu,cuh}📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
Files:
**/*.cu📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
Files:
**/*.{cu,cuh,cpp,hpp,h}📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
Files:
**/*.{cu,cpp,hpp,h}📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
Files:
🧠 Learnings (14)📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
📚 Learning: 2025-11-25T10:20:49.822ZApplied to files:
🔇 Additional comments (3)
✏️ Tip: You can disable this entire section by setting Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In @cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu:
- Around line 1784-1786: The assertion message in cuopt_assert for the condition
involving index_start_primal and index_end_primal contains a typo: change the
message string in the cuopt_assert call that currently reads "Start should be
strictly smalled than end" to "Start should be strictly smaller than end"
(locate the cuopt_assert call referencing index_start_primal and
index_end_primal and update only the error string).
🧹 Nitpick comments (1)
cpp/src/routing/ges/compute_fragment_ejections.cu (1)
57-58: Typo fix on line 58 is correct.The "stricly" → "strictly" correction is good, and the message now correctly matches the check (
> 0validates strictly positive).However, line 57 still contains a typo:
"greated"should be"greater". Consider fixing it in this PR for consistency.Suggested fix for line 57
- cuopt_assert(route_length > 1, "Route length should be greated than one"); + cuopt_assert(route_length > 1, "Route length should be greater than one");
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (10)
benchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/libmps_parser/src/mps_parser.cppcpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/compute_fragment_ejections.cucpp/src/routing/ges/compute_fragment_ejections.cuhcpp/src/routing/ges/execute_insertion.cucpp/src/routing/ges/lexicographic_search/lexicographic_search.cucpp/src/routing/node/pdp_node.cuhcpp/src/routing/route/route.cuhcpp/tests/linear_programming/utilities/pdlp_test_utilities.cuh
🧰 Additional context used
📓 Path-based instructions (6)
**/*.{cu,cuh}
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
**/*.{cu,cuh}: Every CUDA kernel launch and memory operation must have error checking with CUDA_CHECK or equivalent verification
Avoid reinventing functionality already available in Thrust, CCCL, or RMM libraries; prefer standard library utilities over custom implementations
Files:
cpp/src/routing/ges/execute_insertion.cucpp/src/routing/node/pdp_node.cuhcpp/src/routing/route/route.cuhcpp/src/routing/ges/compute_fragment_ejections.cucpp/src/routing/ges/compute_fragment_ejections.cuhcpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/lexicographic_search/lexicographic_search.cucpp/tests/linear_programming/utilities/pdlp_test_utilities.cuh
**/*.cu
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
**/*.cu: Verify race conditions and correctness of GPU kernel shared memory, atomics, and warp-level operations
Detect inefficient GPU kernel launches with low occupancy or poor memory access patterns; optimize for coalesced memory access and minimize warp divergence in hot paths
Files:
cpp/src/routing/ges/execute_insertion.cucpp/src/routing/ges/compute_fragment_ejections.cucpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/lexicographic_search/lexicographic_search.cu
**/*.{cu,cuh,cpp,hpp,h}
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
**/*.{cu,cuh,cpp,hpp,h}: Track GPU device memory allocations and deallocations to prevent memory leaks; ensure cudaMalloc/cudaFree balance and cleanup of streams/events
Validate algorithm correctness in optimization logic: simplex pivots, branch-and-bound decisions, routing heuristics, and constraint/objective handling must produce correct results
Check numerical stability: prevent overflow/underflow, precision loss, division by zero/near-zero, and use epsilon comparisons for floating-point equality checks
Validate correct initialization of variable bounds, constraint coefficients, and algorithm state before solving; ensure reset when transitioning between algorithm phases (presolve, simplex, diving, crossover)
Ensure variables and constraints are accessed from the correct problem context (original vs presolve vs folded vs postsolve); verify index mapping consistency across problem transformations
For concurrent CUDA operations (barriers, async operations), explicitly create and manage dedicated streams instead of reusing the default stream; document stream lifecycle
Eliminate unnecessary host-device synchronization (cudaDeviceSynchronize) in hot paths that blocks GPU pipeline; use streams and events for async execution
Assess algorithmic complexity for large-scale problems (millions of variables/constraints); ensure O(n log n) or better complexity, not O(n²) or worse
Verify correct problem size checks before expensive GPU/CPU operations; prevent resource exhaustion on oversized problems
Identify assertions with overly strict numerical tolerances that fail on legitimate degenerate/edge cases (near-zero pivots, singular matrices, empty problems)
Ensure race conditions are absent in multi-GPU code and multi-threaded server implementations; verify proper synchronization of shared state
Refactor code duplication in solver components (3+ occurrences) into shared utilities; for GPU kernels, use templated device functions to avoid duplication
Check that hard-coded GPU de...
Files:
cpp/src/routing/ges/execute_insertion.cucpp/src/routing/node/pdp_node.cuhcpp/src/routing/route/route.cuhcpp/src/routing/ges/compute_fragment_ejections.cucpp/src/routing/ges/compute_fragment_ejections.cuhcpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/lexicographic_search/lexicographic_search.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/tests/linear_programming/utilities/pdlp_test_utilities.cuhcpp/libmps_parser/src/mps_parser.cpp
**/*.{cu,cpp,hpp,h}
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
Avoid inappropriate use of exceptions in performance-critical GPU operation paths; prefer error codes or CUDA error checking for latency-sensitive code
Files:
cpp/src/routing/ges/execute_insertion.cucpp/src/routing/ges/compute_fragment_ejections.cucpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/lexicographic_search/lexicographic_search.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/libmps_parser/src/mps_parser.cpp
**/*.{h,hpp,py}
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
Verify C API does not break ABI stability (no struct layout changes, field reordering); maintain backward compatibility in Python and server APIs with deprecation warnings
Files:
benchmarks/linear_programming/cuopt/initial_problem_check.hpp
**/*.{cpp,hpp,h}
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
**/*.{cpp,hpp,h}: Check for unclosed file handles when reading MPS/QPS problem files; ensure RAII patterns or proper cleanup in exception paths
Validate input sanitization to prevent buffer overflows and resource exhaustion attacks; avoid unsafe deserialization of problem files
Prevent thread-unsafe use of global and static variables; use proper mutex/synchronization in server code accessing shared solver state
Files:
benchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/libmps_parser/src/mps_parser.cpp
🧠 Learnings (16)
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Validate algorithm correctness in optimization logic: simplex pivots, branch-and-bound decisions, routing heuristics, and constraint/objective handling must produce correct results
Applied to files:
cpp/src/routing/ges/execute_insertion.cucpp/src/routing/node/pdp_node.cuhcpp/src/routing/route/route.cuhcpp/src/routing/ges/compute_fragment_ejections.cucpp/src/routing/ges/compute_fragment_ejections.cuhcpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/lexicographic_search/lexicographic_search.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/tests/linear_programming/utilities/pdlp_test_utilities.cuh
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Identify assertions with overly strict numerical tolerances that fail on legitimate degenerate/edge cases (near-zero pivots, singular matrices, empty problems)
Applied to files:
cpp/src/routing/ges/execute_insertion.cucpp/src/routing/node/pdp_node.cuhcpp/src/routing/route/route.cuhcpp/src/routing/ges/compute_fragment_ejections.cucpp/src/routing/ges/compute_fragment_ejections.cuhcpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/lexicographic_search/lexicographic_search.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/tests/linear_programming/utilities/pdlp_test_utilities.cuh
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Validate correct initialization of variable bounds, constraint coefficients, and algorithm state before solving; ensure reset when transitioning between algorithm phases (presolve, simplex, diving, crossover)
Applied to files:
cpp/src/routing/route/route.cuhcpp/src/routing/ges/compute_fragment_ejections.cuhcpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/lexicographic_search/lexicographic_search.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/tests/linear_programming/utilities/pdlp_test_utilities.cuh
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Verify error propagation from CUDA to user-facing APIs is complete; ensure CUDA errors are caught and mapped to meaningful user error codes
Applied to files:
cpp/src/routing/ges/compute_fragment_ejections.cucpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Verify correct problem size checks before expensive GPU/CPU operations; prevent resource exhaustion on oversized problems
Applied to files:
cpp/src/routing/ges/compute_fragment_ejections.cuhcpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cubenchmarks/linear_programming/cuopt/initial_problem_check.hpp
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Refactor code duplication in solver components (3+ occurrences) into shared utilities; for GPU kernels, use templated device functions to avoid duplication
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cpp,hpp,h} : Avoid inappropriate use of exceptions in performance-critical GPU operation paths; prefer error codes or CUDA error checking for latency-sensitive code
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Ensure variables and constraints are accessed from the correct problem context (original vs presolve vs folded vs postsolve); verify index mapping consistency across problem transformations
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/lexicographic_search/lexicographic_search.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/tests/linear_programming/utilities/pdlp_test_utilities.cuh
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh} : Avoid reinventing functionality already available in Thrust, CCCL, or RMM libraries; prefer standard library utilities over custom implementations
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Check that hard-coded GPU device IDs and resource limits are made configurable; abstract multi-backend support for different CUDA versions
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*test*.{cpp,cu,py} : Write tests validating numerical correctness of optimization results (not just 'runs without error'); test degenerate cases (infeasible, unbounded, empty, singleton problems)
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cubenchmarks/linear_programming/cuopt/initial_problem_check.hpp
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Check numerical stability: prevent overflow/underflow, precision loss, division by zero/near-zero, and use epsilon comparisons for floating-point equality checks
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Assess algorithmic complexity for large-scale problems (millions of variables/constraints); ensure O(n log n) or better complexity, not O(n²) or worse
Applied to files:
benchmarks/linear_programming/cuopt/initial_problem_check.hpp
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*test*.{cpp,cu,py} : Test with free variables, singleton problems, and extreme problem dimensions near resource limits to validate edge case handling
Applied to files:
benchmarks/linear_programming/cuopt/initial_problem_check.hpp
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cpp,hpp,h} : Check for unclosed file handles when reading MPS/QPS problem files; ensure RAII patterns or proper cleanup in exception paths
Applied to files:
benchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/libmps_parser/src/mps_parser.cpp
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*test*.{cpp,cu,py} : Add tests for algorithm phase transitions: verify correct initialization of bounds and state when transitioning from presolve to simplex to diving to crossover
Applied to files:
benchmarks/linear_programming/cuopt/initial_problem_check.hpp
🔇 Additional comments (15)
benchmarks/linear_programming/cuopt/initial_problem_check.hpp (1)
82-82: LGTM!Typo fix is correct: "stricly" → "strictly".
cpp/tests/linear_programming/utilities/pdlp_test_utilities.cuh (1)
130-130: LGTM!Typo fix is correct: "stricly" → "strictly".
cpp/libmps_parser/src/mps_parser.cpp (1)
857-860: LGTM!Typo fix is correct: "stricly" → "strictly".
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu (3)
1327-1327: LGTM!Typo fix is correct: "stricly" → "strictly".
1345-1345: LGTM!Typo fix is correct: "stricly" → "strictly".
1525-1525: LGTM!Typo fix is correct: "stricly" → "strictly".
cpp/src/routing/ges/compute_fragment_ejections.cuh (5)
53-53: LGTM!Typo fix is correct: "lenght" → "length".
76-76: LGTM!Typo fix is correct: "stricly" → "strictly".
109-109: LGTM!Typo fix is correct: "lenght" → "length".
153-153: LGTM!Typo fix is correct: "stricly" → "strictly".
164-164: LGTM!Typo fix is correct: "estrictly" → "strictly".
cpp/src/routing/ges/lexicographic_search/lexicographic_search.cu (1)
126-126: LGTM! Typo corrected.The spelling correction from "stricly" to "strictly" improves the assertion message quality without affecting functionality.
cpp/src/routing/ges/execute_insertion.cu (1)
162-162: LGTM! Typo corrected.The spelling correction from "stricly" to "strictly" improves the assertion message quality without affecting functionality.
cpp/src/routing/route/route.cuh (1)
594-594: LGTM! Typos corrected consistently.All spelling corrections from "stricly" to "strictly" across multiple assertion messages improve code quality without affecting functionality. The fixes are applied consistently throughout route operations (ejection, copying, forward/backward computation).
Also applies to: 616-616, 631-631, 638-638, 741-741, 762-762
cpp/src/routing/node/pdp_node.cuh (1)
26-32: Typo fixes look good.The spelling corrections from "stricly" to "strictly" are correct.
Optional observation: The assertion messages say "strictly positive" but the checks are
>= 0, which validates non-negative values (including zero). Mathematically, "strictly positive" means> 0. This is a pre-existing semantic mismatch—consider rewording to "non-negative" or adjusting the checks if zero is indeed invalid.Also applies to: 42-46
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🤖 Fix all issues with AI agents
In @cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu:
- Around line 1784-1786: The assertion message in cuopt_assert (call:
cuopt_assert(index_start_primal <= index_end_primal, "Start should be strictly
smalled than end")) contains a typo: replace "smalled" with "smaller" so the
message reads "Start should be strictly smaller than end"; update the string
literal used in the cuopt_assert invocation accordingly to correct the typo.
In @cpp/src/routing/ges/compute_fragment_ejections.cuh:
- Line 109: Fix the typo in the assertion message used with cuopt_assert: change
the message string from "Route lenght should be strictly positive" to "Route
length should be strictly positive" (and apply the same correction for the
identical typo referenced at line 53); update the message passed to cuopt_assert
in compute_fragment_ejections.cuh so it uses "length" consistently.
- Line 53: The assertion message in the cuopt_assert call inside
compute_fragment_ejections (the call invoking cuopt_assert(route_length >= 1,
"...")) still contains a typo: change "Route lenght should be strictly positive"
to "Route length should be strictly positive" by correcting "lenght" → "length"
while keeping the existing "strictly" fix.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (10)
benchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/libmps_parser/src/mps_parser.cppcpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/compute_fragment_ejections.cucpp/src/routing/ges/compute_fragment_ejections.cuhcpp/src/routing/ges/execute_insertion.cucpp/src/routing/ges/lexicographic_search/lexicographic_search.cucpp/src/routing/node/pdp_node.cuhcpp/src/routing/route/route.cuhcpp/tests/linear_programming/utilities/pdlp_test_utilities.cuh
🚧 Files skipped from review as they are similar to previous changes (6)
- cpp/tests/linear_programming/utilities/pdlp_test_utilities.cuh
- cpp/src/routing/ges/compute_fragment_ejections.cu
- cpp/src/routing/ges/lexicographic_search/lexicographic_search.cu
- cpp/src/routing/node/pdp_node.cuh
- cpp/src/routing/ges/execute_insertion.cu
- cpp/src/routing/route/route.cuh
🧰 Additional context used
📓 Path-based instructions (6)
**/*.{cu,cuh,cpp,hpp,h}
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
**/*.{cu,cuh,cpp,hpp,h}: Track GPU device memory allocations and deallocations to prevent memory leaks; ensure cudaMalloc/cudaFree balance and cleanup of streams/events
Validate algorithm correctness in optimization logic: simplex pivots, branch-and-bound decisions, routing heuristics, and constraint/objective handling must produce correct results
Check numerical stability: prevent overflow/underflow, precision loss, division by zero/near-zero, and use epsilon comparisons for floating-point equality checks
Validate correct initialization of variable bounds, constraint coefficients, and algorithm state before solving; ensure reset when transitioning between algorithm phases (presolve, simplex, diving, crossover)
Ensure variables and constraints are accessed from the correct problem context (original vs presolve vs folded vs postsolve); verify index mapping consistency across problem transformations
For concurrent CUDA operations (barriers, async operations), explicitly create and manage dedicated streams instead of reusing the default stream; document stream lifecycle
Eliminate unnecessary host-device synchronization (cudaDeviceSynchronize) in hot paths that blocks GPU pipeline; use streams and events for async execution
Assess algorithmic complexity for large-scale problems (millions of variables/constraints); ensure O(n log n) or better complexity, not O(n²) or worse
Verify correct problem size checks before expensive GPU/CPU operations; prevent resource exhaustion on oversized problems
Identify assertions with overly strict numerical tolerances that fail on legitimate degenerate/edge cases (near-zero pivots, singular matrices, empty problems)
Ensure race conditions are absent in multi-GPU code and multi-threaded server implementations; verify proper synchronization of shared state
Refactor code duplication in solver components (3+ occurrences) into shared utilities; for GPU kernels, use templated device functions to avoid duplication
Check that hard-coded GPU de...
Files:
cpp/libmps_parser/src/mps_parser.cppcpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/src/routing/ges/compute_fragment_ejections.cuh
**/*.{cpp,hpp,h}
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
**/*.{cpp,hpp,h}: Check for unclosed file handles when reading MPS/QPS problem files; ensure RAII patterns or proper cleanup in exception paths
Validate input sanitization to prevent buffer overflows and resource exhaustion attacks; avoid unsafe deserialization of problem files
Prevent thread-unsafe use of global and static variables; use proper mutex/synchronization in server code accessing shared solver state
Files:
cpp/libmps_parser/src/mps_parser.cppbenchmarks/linear_programming/cuopt/initial_problem_check.hpp
**/*.{cu,cpp,hpp,h}
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
Avoid inappropriate use of exceptions in performance-critical GPU operation paths; prefer error codes or CUDA error checking for latency-sensitive code
Files:
cpp/libmps_parser/src/mps_parser.cppcpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cubenchmarks/linear_programming/cuopt/initial_problem_check.hpp
**/*.{cu,cuh}
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
**/*.{cu,cuh}: Every CUDA kernel launch and memory operation must have error checking with CUDA_CHECK or equivalent verification
Avoid reinventing functionality already available in Thrust, CCCL, or RMM libraries; prefer standard library utilities over custom implementations
Files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cucpp/src/routing/ges/compute_fragment_ejections.cuh
**/*.cu
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
**/*.cu: Verify race conditions and correctness of GPU kernel shared memory, atomics, and warp-level operations
Detect inefficient GPU kernel launches with low occupancy or poor memory access patterns; optimize for coalesced memory access and minimize warp divergence in hot paths
Files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
**/*.{h,hpp,py}
📄 CodeRabbit inference engine (.github/.coderabbit_review_guide.md)
Verify C API does not break ABI stability (no struct layout changes, field reordering); maintain backward compatibility in Python and server APIs with deprecation warnings
Files:
benchmarks/linear_programming/cuopt/initial_problem_check.hpp
🧠 Learnings (15)
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Identify assertions with overly strict numerical tolerances that fail on legitimate degenerate/edge cases (near-zero pivots, singular matrices, empty problems)
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/src/routing/ges/compute_fragment_ejections.cuh
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Verify error propagation from CUDA to user-facing APIs is complete; ensure CUDA errors are caught and mapped to meaningful user error codes
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Validate correct initialization of variable bounds, constraint coefficients, and algorithm state before solving; ensure reset when transitioning between algorithm phases (presolve, simplex, diving, crossover)
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/src/routing/ges/compute_fragment_ejections.cuh
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Validate algorithm correctness in optimization logic: simplex pivots, branch-and-bound decisions, routing heuristics, and constraint/objective handling must produce correct results
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/src/routing/ges/compute_fragment_ejections.cuh
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cpp,hpp,h} : Avoid inappropriate use of exceptions in performance-critical GPU operation paths; prefer error codes or CUDA error checking for latency-sensitive code
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Refactor code duplication in solver components (3+ occurrences) into shared utilities; for GPU kernels, use templated device functions to avoid duplication
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Check that hard-coded GPU device IDs and resource limits are made configurable; abstract multi-backend support for different CUDA versions
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Verify correct problem size checks before expensive GPU/CPU operations; prevent resource exhaustion on oversized problems
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cubenchmarks/linear_programming/cuopt/initial_problem_check.hppcpp/src/routing/ges/compute_fragment_ejections.cuh
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Ensure variables and constraints are accessed from the correct problem context (original vs presolve vs folded vs postsolve); verify index mapping consistency across problem transformations
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cubenchmarks/linear_programming/cuopt/initial_problem_check.hpp
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*test*.{cpp,cu,py} : Write tests validating numerical correctness of optimization results (not just 'runs without error'); test degenerate cases (infeasible, unbounded, empty, singleton problems)
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cubenchmarks/linear_programming/cuopt/initial_problem_check.hpp
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Check numerical stability: prevent overflow/underflow, precision loss, division by zero/near-zero, and use epsilon comparisons for floating-point equality checks
Applied to files:
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Assess algorithmic complexity for large-scale problems (millions of variables/constraints); ensure O(n log n) or better complexity, not O(n²) or worse
Applied to files:
benchmarks/linear_programming/cuopt/initial_problem_check.hpp
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*test*.{cpp,cu,py} : Test with free variables, singleton problems, and extreme problem dimensions near resource limits to validate edge case handling
Applied to files:
benchmarks/linear_programming/cuopt/initial_problem_check.hpp
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cpp,hpp,h} : Check for unclosed file handles when reading MPS/QPS problem files; ensure RAII patterns or proper cleanup in exception paths
Applied to files:
benchmarks/linear_programming/cuopt/initial_problem_check.hpp
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*test*.{cpp,cu,py} : Add tests for algorithm phase transitions: verify correct initialization of bounds and state when transitioning from presolve to simplex to diving to crossover
Applied to files:
benchmarks/linear_programming/cuopt/initial_problem_check.hpp
🔇 Additional comments (7)
benchmarks/linear_programming/cuopt/initial_problem_check.hpp (1)
82-82: LGTM!The typo fix from "stricly" to "strictly" in the comment is correct.
cpp/libmps_parser/src/mps_parser.cpp (1)
857-861: LGTM!The typo fix from "stricly" to "strictly" in the comment is correct.
cpp/src/routing/ges/compute_fragment_ejections.cuh (2)
76-76: LGTM!The typo fix from "stricly" to "strictly" is correct.
153-164: LGTM!The typo fixes from "stricly" to "strictly" on lines 153 and 164 are correct.
cpp/src/linear_programming/restart_strategy/pdlp_restart_strategy.cu (3)
1327-1327: LGTM!The typo fix from "stricly" to "strictly" is correct.
1345-1345: LGTM!The typo fix from "stricly" to "strictly" is correct.
1525-1525: LGTM!The typo fix from "stricly" to "strictly" is correct.
Signed-off-by: John E <jeis4wpi@outlook.com> add fix for greated to greater additional typo Signed-off-by: John E <jeis4wpi@outlook.com> fix lenght also Signed-off-by: John E <jeis4wpi@outlook.com> fix smalled Signed-off-by: John E <jeis4wpi@outlook.com>
hlinsen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
|
/ok to test 534ef68 |
|
/ok to test 274c045 |
Description
Issue
Propose fix a typo for stricly to strictly
Is this helpful?
Checklist
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.